package com.sanwei.taskmanagement.util;

import com.sanwei.taskmanagement.constants.HttpStatus;

import java.util.HashMap;

/**
 * 封装的返回对象
 */
public class AjaxResult extends HashMap<String, Object> {

    // 状态码标识
    private static final String CODE_TAG = "code";

    // 消息标识
    private static final String MESSAGE_TAG = "message";

    // 数据标识
    private static final String DATA_TAG = "data";

    public AjaxResult() {
    }

    /**
     * 初始化一个新创建的AjaxResult对象
     *
     * @param code 状态码
     * @param message 返回内容
     */
    public AjaxResult(int code,String message) {
        this.put(CODE_TAG,code);
        this.put(MESSAGE_TAG,message);
    }

    /**
     * 初始化一个新创建的AjaxResult对象
     *
     * @param code 状态码
     * @param message 返回内容
     * @param data 数据对象
     */
    public AjaxResult(int code, String message, Object data) {
        this.put(CODE_TAG,code);
        this.put(MESSAGE_TAG,message);
        this.put(DATA_TAG,data);
    }

    /**
     * 返回一个成功消息
     *
     * @param message 返回内容
     * @param data 数据对象
     * @return 成功消息
     */
    public static AjaxResult success(String message, Object data) {
        return new AjaxResult(HttpStatus.SUCCESS,message,data);
    }

    /**
     * 返回一个成功消息
     *
     * @param message 返回内容
     * @return 成功消息
     */
    public static AjaxResult success(String message) {
        return AjaxResult.success(message,null);
    }

    /**
     * 返回一个成功消息
     *
     * @param data 数据
     * @return 成功消息
     */
    public static AjaxResult success(Object data) {
        return AjaxResult.success("操作成功",data);
    }

    /**
     * 返回一个成功消息
     *
     * @return 成功消息
     */
    public static AjaxResult success() {
        return AjaxResult.success("操作成功");
    }

    /**
     * 返回一个错误消息
     *
     * @param message 返回内容
     * @param data 数据
     * @return 错误消息
     */
    public static AjaxResult error(String message, Object data) {
        return new AjaxResult(HttpStatus.ERROR,message,data);
    }

    /**
     * 返回一个错误消息
     *
     * @param message 返回内容
     * @return 错误消息
     */
    public static AjaxResult error(String message) {
        return AjaxResult.error(message,null);
    }

    /**
     * 返回一个错误消息
     *
     * @return 错误消息
     */
    public static AjaxResult error() {
        return AjaxResult.error("操作失败");
    }

}
